#ifndef __BL0942_H__
#define __BL0942_H__

#ifdef __cplusplus
extern "C" {
#endif

typedef struct __attribute__((packed))
{
    float current;          // 电流 单位：A
    float voltage;          // 电压 单位：V
    float power;            // 功率 单位：W
    float kwh_total;        // 上电以来总电能 单位：KWh（度）
} electrical_data_t;

typedef void (*bl0942_data_callback_t)(electrical_data_t *data);

/**
 * @brief 初始化BL0942模块
 * @return 初始化结果
 */
int bl0942_init(void);

/**
 * @brief 获取电参数数据
 * @return 电参数数据
 */
electrical_data_t *bl0942_get_electrical_data(void);

/**
 * @brief 设置电参数数据回调函数
 * @param callback 回调函数
 */
void bl0942_data_callback_register(bl0942_data_callback_t callback);

#ifdef __cplusplus
}
#endif

#endif // __BL0942_H__
